//---------------------------------------------------------------------------
#ifndef uGererFormatRTFH
#define uGererFormatRTFH
//---------------------------------------------------------------------------

enum NOM_SECTION
{
  AUCUNE_SECTION,
  EN_TETE,
  EN_TETE_RIGHT,
  EN_TETE_LEFT,
  EN_TETE_FRONT,
  PIED_DE_PAGE,
  PIED_DE_PAGE_RIGHT,
  PIED_DE_PAGE_LEFT,
  PIED_DE_PAGE_FRONT,
  CORPS,
  PARD_PLAIN,
  FONTTBL,
  FILETBL,
  COLORTBL,
  STYLESHEET,
  LISTTABLES,
  REVTBL,
  RSIDTABLE,
  GENERATOR,
  NB_NOM_SECTION,
};

class TGererFormatRTF
{
private :
   AnsiString aNomSection[NB_NOM_SECTION];
   void __fastcall FusionnerTables(AnsiString *aRTF_A_Analyser, TStringList *ListeFont, TList *lstCouleurs, bool bStocker);
   void __fastcall RemplacerNumeroFonte(AnsiString *aRTF_A_Analyser, int AncienNumero, int NouveauNumero, int *iPos);
   void __fastcall RemplacerParCouleurTmp(AnsiString *aRTF, int AncienNumero, int NouveauNumero);
   void __fastcall NettoyerSection(AnsiString &aRTF_A_Analyser);
   void __fastcall RemplacerTables(AnsiString *aRTF, TStringList *ListeFont, TList *lstCouleurs);
   bool __fastcall OnEstSurLaSectionRecherchee(const char szRTFCible[], int i, NOM_SECTION eNomSection);
   void __fastcall PositionnerApresMotCle(const char szRtf[], int *iPos);
   bool __fastcall OnEstSurMotCle(const char szRtf[],
                                  int iPos,
                                  const AnsiString &aMotCle);
   bool __fastcall IsMotCleDeFontTbl(const char *NomSection);
   int __fastcall PositionnerApresSectionEntete(const AnsiString &aRTFSource);

public:
   __fastcall TGererFormatRTF();
   void __fastcall CreerUnRTFPourUneSection(const AnsiString &aRTFSource, NOM_SECTION eNomSection, AnsiString *aRTFCible);
   int  __fastcall SupprimerSection(NOM_SECTION eNomSection, AnsiString *aRTFCible);
   void __fastcall RemonterSection(/*const AnsiString &aRTFSource, */NOM_SECTION eNomSection, AnsiString *aRTFCible,int Index/*1,int Index2*/);
   void __fastcall EnregistrerSection(AnsiString *aRTFCible, NOM_SECTION eNomSection, AnsiString aRTF_A_Ajouter);
   void __fastcall ExtraireSection(const AnsiString &aRTF_A_Ajouter, AnsiString *TexteSection);
   AnsiString __fastcall ChercherNomPolice(const char szRtf[]);
};

#endif
